#ifndef BEGIN_ENUM
#	define BEGIN_ENUM(e)
#endif
#ifndef END_ENUM
#	define END_ENUM(e)
#endif
#ifndef ENUM_VALUE
#	define ENUM_VALUE(v)
#endif

#ifndef NO_ENUM_A_Expr_Kind
BEGIN_ENUM(A_Expr_Kind)
	ENUM_VALUE(AEXPR_OP)
	ENUM_VALUE(AEXPR_AND)
	ENUM_VALUE(AEXPR_OR)
	ENUM_VALUE(AEXPR_NOT)
	ENUM_VALUE(AEXPR_OP_ANY)
	ENUM_VALUE(AEXPR_OP_ALL)
	ENUM_VALUE(AEXPR_DISTINCT)
	ENUM_VALUE(AEXPR_NULLIF)
	ENUM_VALUE(AEXPR_OF)
	ENUM_VALUE(AEXPR_IN)
END_ENUM(A_Expr_Kind)
#endif /* NO_ENUM_A_Expr_Kind; */

/*#ifndef NO_ENUM_TableLikeOption
BEGIN_ENUM(TableLikeOption)
	ENUM_VALUE(CREATE_TABLE_LIKE_DEFAULTS)
	ENUM_VALUE(CREATE_TABLE_LIKE_CONSTRAINTS)
	ENUM_VALUE(CREATE_TABLE_LIKE_INDEXES)
	ENUM_VALUE(CREATE_TABLE_LIKE_STORAGE)
	ENUM_VALUE(CREATE_TABLE_LIKE_COMMENTS)
	ENUM_VALUE(CREATE_TABLE_LIKE_ALL)
END_ENUM(TableLikeOption)
#endif*/ /* NO_ENUM_TableLikeOption; */

#ifndef NO_ENUM_DefElemAction
BEGIN_ENUM(DefElemAction)
	ENUM_VALUE(DEFELEM_UNSPEC)
	ENUM_VALUE(DEFELEM_SET)
	ENUM_VALUE(DEFELEM_ADD)
	ENUM_VALUE(DEFELEM_DROP)
END_ENUM(DefElemAction)
#endif /* NO_ENUM_DefElemAction; */

#ifndef NO_ENUM_LockClauseStrength
BEGIN_ENUM(LockClauseStrength)
	ENUM_VALUE(LCS_FORKEYSHARE)
	ENUM_VALUE(LCS_FORSHARE)
	ENUM_VALUE(LCS_FORNOKEYUPDATE)
	ENUM_VALUE(LCS_FORUPDATE)
END_ENUM(LockClauseStrength)
#endif /* NO_ENUM_LockClauseStrength; */

#ifndef NO_ENUM_RTEKind
BEGIN_ENUM(RTEKind)
	ENUM_VALUE(RTE_RELATION)
	ENUM_VALUE(RTE_SUBQUERY)
	ENUM_VALUE(RTE_JOIN)
	ENUM_VALUE(RTE_FUNCTION)
	ENUM_VALUE(RTE_VALUES)
	ENUM_VALUE(RTE_CTE)
#ifdef PGXC
	ENUM_VALUE(RTE_REMOTE_DUMMY)
#endif /* PGXC */
END_ENUM(RTEKind)
#endif /* NO_ENUM_RTEKind; */

#ifndef NO_ENUM_SetOperation
BEGIN_ENUM(SetOperation)
	ENUM_VALUE(SETOP_NONE)
	ENUM_VALUE(SETOP_UNION)
	ENUM_VALUE(SETOP_INTERSECT)
	ENUM_VALUE(SETOP_EXCEPT)
END_ENUM(SetOperation)
#endif /* NO_ENUM_SetOperation; */

#ifndef NO_ENUM_ObjectType
BEGIN_ENUM(ObjectType)
	ENUM_VALUE(OBJECT_AGGREGATE)
	ENUM_VALUE(OBJECT_ATTRIBUTE)
	ENUM_VALUE(OBJECT_CAST)
	ENUM_VALUE(OBJECT_COLUMN)
	ENUM_VALUE(OBJECT_CONSTRAINT)
	ENUM_VALUE(OBJECT_COLLATION)
	ENUM_VALUE(OBJECT_CONVERSION)
	ENUM_VALUE(OBJECT_DATABASE)
	ENUM_VALUE(OBJECT_DOMAIN)
	ENUM_VALUE(OBJECT_EVENT_TRIGGER)
	ENUM_VALUE(OBJECT_EXTENSION)
	ENUM_VALUE(OBJECT_FDW)
	ENUM_VALUE(OBJECT_FOREIGN_SERVER)
	ENUM_VALUE(OBJECT_FOREIGN_TABLE)
	ENUM_VALUE(OBJECT_FUNCTION)
	ENUM_VALUE(OBJECT_INDEX)
	ENUM_VALUE(OBJECT_LANGUAGE)
	ENUM_VALUE(OBJECT_LARGEOBJECT)
	ENUM_VALUE(OBJECT_MATVIEW)
	ENUM_VALUE(OBJECT_OPCLASS)
	ENUM_VALUE(OBJECT_OPERATOR)
	ENUM_VALUE(OBJECT_OPFAMILY)
	ENUM_VALUE(OBJECT_ROLE)
	ENUM_VALUE(OBJECT_RULE)
	ENUM_VALUE(OBJECT_SCHEMA)
	ENUM_VALUE(OBJECT_SEQUENCE)
	ENUM_VALUE(OBJECT_TABLE)
	ENUM_VALUE(OBJECT_TABLESPACE)
	ENUM_VALUE(OBJECT_TRIGGER)
	ENUM_VALUE(OBJECT_TSCONFIGURATION)
	ENUM_VALUE(OBJECT_TSDICTIONARY)
	ENUM_VALUE(OBJECT_TSPARSER)
	ENUM_VALUE(OBJECT_TSTEMPLATE)
	ENUM_VALUE(OBJECT_TYPE)
	ENUM_VALUE(OBJECT_VIEW)
END_ENUM(ObjectType)
#endif /* NO_ENUM_ObjectType; */

#ifndef NO_ENUM_DropBehavior
BEGIN_ENUM(DropBehavior)
	ENUM_VALUE(DROP_RESTRICT)
	ENUM_VALUE(DROP_CASCADE)
END_ENUM(DropBehavior)
#endif /* NO_ENUM_DropBehavior; */

#ifndef NO_ENUM_AlterTableType
BEGIN_ENUM(AlterTableType)
	ENUM_VALUE(AT_AddColumn)
	ENUM_VALUE(AT_AddColumnRecurse)
	ENUM_VALUE(AT_AddColumnToView)
	ENUM_VALUE(AT_ColumnDefault)
	ENUM_VALUE(AT_DropNotNull)
	ENUM_VALUE(AT_SetNotNull)
	ENUM_VALUE(AT_SetStatistics)
	ENUM_VALUE(AT_SetOptions)
	ENUM_VALUE(AT_ResetOptions)
	ENUM_VALUE(AT_SetStorage)
	ENUM_VALUE(AT_DropColumn)
	ENUM_VALUE(AT_DropColumnRecurse)
	ENUM_VALUE(AT_AddIndex)
	ENUM_VALUE(AT_ReAddIndex)
	ENUM_VALUE(AT_AddConstraint)
	ENUM_VALUE(AT_AddConstraintRecurse)
	ENUM_VALUE(AT_ReAddConstraint)
	ENUM_VALUE(AT_ValidateConstraint)
	ENUM_VALUE(AT_ValidateConstraintRecurse)
	ENUM_VALUE(AT_ProcessedConstraint)
	ENUM_VALUE(AT_AddIndexConstraint)
	ENUM_VALUE(AT_DropConstraint)
	ENUM_VALUE(AT_DropConstraintRecurse)
	ENUM_VALUE(AT_AlterColumnType)
	ENUM_VALUE(AT_AlterColumnGenericOptions)
	ENUM_VALUE(AT_ChangeOwner)
	ENUM_VALUE(AT_ClusterOn)
	ENUM_VALUE(AT_DropCluster)
	ENUM_VALUE(AT_AddOids)
	ENUM_VALUE(AT_AddOidsRecurse)
	ENUM_VALUE(AT_DropOids)
	ENUM_VALUE(AT_SetTableSpace)
	ENUM_VALUE(AT_SetRelOptions)
	ENUM_VALUE(AT_ResetRelOptions)
	ENUM_VALUE(AT_ReplaceRelOptions)
	ENUM_VALUE(AT_EnableTrig)
	ENUM_VALUE(AT_EnableAlwaysTrig)
	ENUM_VALUE(AT_EnableReplicaTrig)
	ENUM_VALUE(AT_DisableTrig)
	ENUM_VALUE(AT_EnableTrigAll)
	ENUM_VALUE(AT_DisableTrigAll)
	ENUM_VALUE(AT_EnableTrigUser)
	ENUM_VALUE(AT_DisableTrigUser)
	ENUM_VALUE(AT_EnableRule)
	ENUM_VALUE(AT_EnableAlwaysRule)
	ENUM_VALUE(AT_EnableReplicaRule)
	ENUM_VALUE(AT_DisableRule)
	ENUM_VALUE(AT_AddInherit)
	ENUM_VALUE(AT_DropInherit)
	ENUM_VALUE(AT_AddOf)
	ENUM_VALUE(AT_DropOf)
#ifdef PGXC
	ENUM_VALUE(AT_DistributeBy)
	ENUM_VALUE(AT_SubCluster)
	ENUM_VALUE(AT_AddNodeList)
	ENUM_VALUE(AT_DeleteNodeList)
#endif
	ENUM_VALUE(AT_GenericOptions)
END_ENUM(AlterTableType)
#endif /* NO_ENUM_AlterTableType; */

#ifndef NO_ENUM_GrantTargetType
BEGIN_ENUM(GrantTargetType)
	ENUM_VALUE(ACL_TARGET_OBJECT)
	ENUM_VALUE(ACL_TARGET_ALL_IN_SCHEMA)
	ENUM_VALUE(ACL_TARGET_DEFAULTS)
END_ENUM(GrantTargetType)
#endif /* NO_ENUM_GrantTargetType; */

#ifndef NO_ENUM_GrantObjectType
BEGIN_ENUM(GrantObjectType)
	ENUM_VALUE(ACL_OBJECT_COLUMN)
	ENUM_VALUE(ACL_OBJECT_RELATION)
	ENUM_VALUE(ACL_OBJECT_SEQUENCE)
	ENUM_VALUE(ACL_OBJECT_DATABASE)
	ENUM_VALUE(ACL_OBJECT_DOMAIN)
	ENUM_VALUE(ACL_OBJECT_FDW)
	ENUM_VALUE(ACL_OBJECT_FOREIGN_SERVER)
	ENUM_VALUE(ACL_OBJECT_FUNCTION)
	ENUM_VALUE(ACL_OBJECT_LANGUAGE)
	ENUM_VALUE(ACL_OBJECT_LARGEOBJECT)
	ENUM_VALUE(ACL_OBJECT_NAMESPACE)
	ENUM_VALUE(ACL_OBJECT_TABLESPACE)
	ENUM_VALUE(ACL_OBJECT_TYPE)
END_ENUM(GrantObjectType)
#endif /* NO_ENUM_GrantObjectType; */

#ifndef NO_ENUM_VariableSetKind
BEGIN_ENUM(VariableSetKind)
	ENUM_VALUE(VAR_SET_VALUE)
	ENUM_VALUE(VAR_SET_DEFAULT)
	ENUM_VALUE(VAR_SET_CURRENT)
	ENUM_VALUE(VAR_SET_MULTI)
	ENUM_VALUE(VAR_RESET)
	ENUM_VALUE(VAR_RESET_ALL)
END_ENUM(VariableSetKind)
#endif /* NO_ENUM_VariableSetKind; */

#ifndef NO_ENUM_ConstrType
BEGIN_ENUM(ConstrType)
	ENUM_VALUE(CONSTR_NULL)
	ENUM_VALUE(CONSTR_NOTNULL)
	ENUM_VALUE(CONSTR_DEFAULT)
	ENUM_VALUE(CONSTR_CHECK)
	ENUM_VALUE(CONSTR_PRIMARY)
	ENUM_VALUE(CONSTR_UNIQUE)
	ENUM_VALUE(CONSTR_EXCLUSION)
	ENUM_VALUE(CONSTR_FOREIGN)
	ENUM_VALUE(CONSTR_ATTR_DEFERRABLE)
	ENUM_VALUE(CONSTR_ATTR_NOT_DEFERRABLE)
	ENUM_VALUE(CONSTR_ATTR_DEFERRED)
	ENUM_VALUE(CONSTR_ATTR_IMMEDIATE)
END_ENUM(ConstrType)
#endif /* NO_ENUM_ConstrType; */

#ifndef NO_ENUM_RoleStmtType
BEGIN_ENUM(RoleStmtType)
	ENUM_VALUE(ROLESTMT_ROLE)
	ENUM_VALUE(ROLESTMT_USER)
	ENUM_VALUE(ROLESTMT_GROUP)
END_ENUM(RoleStmtType)
#endif /* NO_ENUM_RoleStmtType; */

#ifndef NO_ENUM_FetchDirection
BEGIN_ENUM(FetchDirection)
	ENUM_VALUE(FETCH_FORWARD)
	ENUM_VALUE(FETCH_BACKWARD)
	ENUM_VALUE(FETCH_ABSOLUTE)
	ENUM_VALUE(FETCH_RELATIVE)
END_ENUM(FetchDirection)
#endif /* NO_ENUM_FetchDirection; */

#ifndef NO_ENUM_FunctionParameterMode
BEGIN_ENUM(FunctionParameterMode)

	ENUM_VALUE(FUNC_PARAM_IN)
	ENUM_VALUE(FUNC_PARAM_OUT)
	ENUM_VALUE(FUNC_PARAM_INOUT)
	ENUM_VALUE(FUNC_PARAM_VARIADIC)
	ENUM_VALUE(FUNC_PARAM_TABLE)
END_ENUM(FunctionParameterMode)
#endif /* NO_ENUM_FunctionParameterMode; */

#ifndef NO_ENUM_TransactionStmtKind
BEGIN_ENUM(TransactionStmtKind)
	ENUM_VALUE(TRANS_STMT_BEGIN)
	ENUM_VALUE(TRANS_STMT_START)
	ENUM_VALUE(TRANS_STMT_COMMIT)
	ENUM_VALUE(TRANS_STMT_ROLLBACK)
	ENUM_VALUE(TRANS_STMT_SAVEPOINT)
	ENUM_VALUE(TRANS_STMT_RELEASE)
	ENUM_VALUE(TRANS_STMT_ROLLBACK_TO)
	ENUM_VALUE(TRANS_STMT_PREPARE)
	ENUM_VALUE(TRANS_STMT_COMMIT_PREPARED)
	ENUM_VALUE(TRANS_STMT_ROLLBACK_PREPARED)
END_ENUM(TransactionStmtKind)
#endif /* NO_ENUM_TransactionStmtKind; */

/*#ifndef NO_ENUM_VacuumOption
BEGIN_ENUM(VacuumOption)
	ENUM_VALUE(VACOPT_VACUUM)
	ENUM_VALUE(VACOPT_ANALYZE)
	ENUM_VALUE(VACOPT_VERBOSE)
	ENUM_VALUE(VACOPT_FREEZE)
	ENUM_VALUE(VACOPT_FULL)
	ENUM_VALUE(VACOPT_NOWAIT)
END_ENUM(VacuumOption)
#endif*/ /* NO_ENUM_VacuumOption; */

#ifndef NO_ENUM_DiscardMode
BEGIN_ENUM(DiscardMode)
	ENUM_VALUE(DISCARD_ALL)
	ENUM_VALUE(DISCARD_PLANS)
	ENUM_VALUE(DISCARD_TEMP)
END_ENUM(DiscardMode)
#endif /* NO_ENUM_DiscardMode; */

#ifndef NO_ENUM_CmdType
BEGIN_ENUM(CmdType)
	ENUM_VALUE(CMD_UNKNOWN)
	ENUM_VALUE(CMD_SELECT)
	ENUM_VALUE(CMD_UPDATE)
	ENUM_VALUE(CMD_INSERT)
	ENUM_VALUE(CMD_DELETE)
	ENUM_VALUE(CMD_UTILITY)
	ENUM_VALUE(CMD_NOTHING)
END_ENUM(CmdType)
#endif /* NO_ENUM_CmdType */

#ifndef NO_ENUM_JoinType
BEGIN_ENUM(JoinType)
	ENUM_VALUE(JOIN_INNER)
	ENUM_VALUE(JOIN_LEFT)
	ENUM_VALUE(JOIN_FULL)
	ENUM_VALUE(JOIN_RIGHT)
	ENUM_VALUE(JOIN_SEMI)
	ENUM_VALUE(JOIN_ANTI)
	ENUM_VALUE(JOIN_UNIQUE_OUTER)
	ENUM_VALUE(JOIN_UNIQUE_INNER)
END_ENUM(JoinType)
#endif /* NO_ENUM_JoinType */

#ifndef NO_ENUM_ScanDirection
BEGIN_ENUM(ScanDirection)
	ENUM_VALUE(BackwardScanDirection)
	ENUM_VALUE(NoMovementScanDirection)
	ENUM_VALUE(ForwardScanDirection)
END_ENUM(ScanDirection)
#endif /* NO_ENUM_ScanDirection */

#ifndef NO_ENUM_AggStrategy
BEGIN_ENUM(AggStrategy)
	ENUM_VALUE(AGG_PLAIN)
	ENUM_VALUE(AGG_SORTED)
	ENUM_VALUE(AGG_HASHED)
END_ENUM(AggStrategy)
#endif /* NO_ENUM_AggStrategy */

#ifndef NO_ENUM_SetOpCmd
BEGIN_ENUM(SetOpCmd)
	ENUM_VALUE(SETOPCMD_INTERSECT)
	ENUM_VALUE(SETOPCMD_INTERSECT_ALL)
	ENUM_VALUE(SETOPCMD_EXCEPT)
	ENUM_VALUE(SETOPCMD_EXCEPT_ALL)
END_ENUM(SetOpCmd)
#endif /* NO_ENUM_SetOpCmd */

#ifndef NO_ENUM_SetOpStrategy
BEGIN_ENUM(SetOpStrategy)
	ENUM_VALUE(SETOP_SORTED)
	ENUM_VALUE(SETOP_HASHED)
END_ENUM(SetOpStrategy)
#endif /* NO_ENUM_SetOpStrategy */

#ifndef NO_ENUM_RowMarkType
BEGIN_ENUM(RowMarkType)
	ENUM_VALUE(ROW_MARK_EXCLUSIVE)
	ENUM_VALUE(ROW_MARK_NOKEYEXCLUSIVE)
	ENUM_VALUE(ROW_MARK_SHARE)
	ENUM_VALUE(ROW_MARK_KEYSHARE)
	ENUM_VALUE(ROW_MARK_REFERENCE)
	ENUM_VALUE(ROW_MARK_COPY)
END_ENUM(RowMarkType)
#endif /* NO_ENUM_RowMarkType */

#ifdef PGXC

#ifndef NO_ENUM_RelationAccessType
BEGIN_ENUM(RelationAccessType)
	ENUM_VALUE(RELATION_ACCESS_READ)
	ENUM_VALUE(RELATION_ACCESS_READ_FOR_UPDATE)
	ENUM_VALUE(RELATION_ACCESS_UPDATE)
	ENUM_VALUE(RELATION_ACCESS_INSERT)
END_ENUM(RelationAccessType)
#endif /* NO_ENUM_RelationAccessType */

#ifndef NO_ENUM_ExecDirectType
BEGIN_ENUM(ExecDirectType)
	ENUM_VALUE(EXEC_DIRECT_NONE)
	ENUM_VALUE(EXEC_DIRECT_LOCAL)
	ENUM_VALUE(EXEC_DIRECT_LOCAL_UTILITY)
	ENUM_VALUE(EXEC_DIRECT_UTILITY)
	ENUM_VALUE(EXEC_DIRECT_SELECT)
	ENUM_VALUE(EXEC_DIRECT_INSERT)
	ENUM_VALUE(EXEC_DIRECT_UPDATE)
	ENUM_VALUE(EXEC_DIRECT_DELETE)
END_ENUM(ExecDirectType)
#endif /* NO_ENUM_ExecDirectType */

#ifndef NO_ENUM_CombineType
BEGIN_ENUM(CombineType)
	ENUM_VALUE(COMBINE_TYPE_NONE)
	ENUM_VALUE(COMBINE_TYPE_SUM)
	ENUM_VALUE(COMBINE_TYPE_SAME)
END_ENUM(CombineType)
#endif /* NO_ENUM_CombineType */

#ifndef NO_ENUM_RemoteQueryExecType
BEGIN_ENUM(RemoteQueryExecType)
	ENUM_VALUE(EXEC_ON_DATANODES)
	ENUM_VALUE(EXEC_ON_COORDS)
	ENUM_VALUE(EXEC_ON_ALL_NODES)
	ENUM_VALUE(EXEC_ON_NONE)
END_ENUM(RemoteQueryExecType)
#endif /* NO_ENUM_RemoteQueryExecType */

#endif /* PGXC */

#ifndef NO_ENUM_InhOption
BEGIN_ENUM(InhOption)
	ENUM_VALUE(INH_NO)
	ENUM_VALUE(INH_YES)
	ENUM_VALUE(INH_DEFAULT)
END_ENUM(InhOption)
#endif /* NO_ENUM_InhOption */

#ifndef NO_ENUM_OnCommitAction
BEGIN_ENUM(OnCommitAction)
	ENUM_VALUE(ONCOMMIT_NOOP)
	ENUM_VALUE(ONCOMMIT_PRESERVE_ROWS)
	ENUM_VALUE(ONCOMMIT_DELETE_ROWS)
	ENUM_VALUE(ONCOMMIT_DROP)
END_ENUM(OnCommitAction)
#endif /* NO_ENUM_OnCommitAction */

#ifndef NO_ENUM_ParamKind
BEGIN_ENUM(ParamKind)
	ENUM_VALUE(PARAM_EXTERN)
	ENUM_VALUE(PARAM_EXEC)
	ENUM_VALUE(PARAM_SUBLINK)
END_ENUM(ParamKind)
#endif /* NO_ENUM_ParamKind */

#ifndef NO_ENUM_CoercionForm
BEGIN_ENUM(CoercionForm)
	ENUM_VALUE(COERCE_EXPLICIT_CALL)
	ENUM_VALUE(COERCE_EXPLICIT_CAST)
	ENUM_VALUE(COERCE_IMPLICIT_CAST)
END_ENUM(CoercionForm)
#endif /* NO_ENUM_CoercionForm */

#ifndef NO_ENUM_BoolExprType
BEGIN_ENUM(BoolExprType)
	ENUM_VALUE(AND_EXPR)
	ENUM_VALUE(OR_EXPR)
	ENUM_VALUE(NOT_EXPR)
END_ENUM(BoolExprType)
#endif /* NO_ENUM_BoolExprType */

#ifndef NO_ENUM_SubLinkType
BEGIN_ENUM(SubLinkType)
	ENUM_VALUE(EXISTS_SUBLINK)
	ENUM_VALUE(ALL_SUBLINK)
	ENUM_VALUE(ANY_SUBLINK)
	ENUM_VALUE(ROWCOMPARE_SUBLINK)
	ENUM_VALUE(EXPR_SUBLINK)
	ENUM_VALUE(ARRAY_SUBLINK)
	ENUM_VALUE(CTE_SUBLINK)
END_ENUM(SubLinkType)
#endif /* NO_ENUM_SubLinkType */

#ifndef NO_ENUM_RowCompareType
BEGIN_ENUM(RowCompareType)

	ENUM_VALUE(ROWCOMPARE_LT)
	ENUM_VALUE(ROWCOMPARE_LE)
	ENUM_VALUE(ROWCOMPARE_EQ)
	ENUM_VALUE(ROWCOMPARE_GE)
	ENUM_VALUE(ROWCOMPARE_GT)
	ENUM_VALUE(ROWCOMPARE_NE)
END_ENUM(RowCompareType)
#endif /* NO_ENUM_RowCompareType */

#ifndef NO_ENUM_MinMaxOp
BEGIN_ENUM(MinMaxOp)
	ENUM_VALUE(IS_GREATEST)
	ENUM_VALUE(IS_LEAST)
END_ENUM(MinMaxOp)
#endif /* NO_ENUM_MinMaxOp */

#ifndef NO_ENUM_XmlExprOp
BEGIN_ENUM(XmlExprOp)
	ENUM_VALUE(IS_XMLCONCAT)
	ENUM_VALUE(IS_XMLELEMENT)
	ENUM_VALUE(IS_XMLFOREST)
	ENUM_VALUE(IS_XMLPARSE)
	ENUM_VALUE(IS_XMLPI)
	ENUM_VALUE(IS_XMLROOT)
	ENUM_VALUE(IS_XMLSERIALIZE)
	ENUM_VALUE(IS_DOCUMENT)
END_ENUM(XmlExprOp)
#endif /* NO_ENUM_XmlExprOp */

#ifndef NO_ENUM_XmlOptionType
BEGIN_ENUM(XmlOptionType)
	ENUM_VALUE(XMLOPTION_DOCUMENT)
	ENUM_VALUE(XMLOPTION_CONTENT)
END_ENUM(XmlOptionType)
#endif /* NO_ENUM_XmlOptionType */

#ifndef NO_ENUM_NullTestType
BEGIN_ENUM(NullTestType)
	ENUM_VALUE(IS_NULL)
	ENUM_VALUE(IS_NOT_NULL)
END_ENUM(NullTestType)
#endif /* NO_ENUM_NullTestType */

#ifndef NO_ENUM_BoolTestType
BEGIN_ENUM(BoolTestType)
	ENUM_VALUE(IS_TRUE)
	ENUM_VALUE(IS_NOT_TRUE)
	ENUM_VALUE(IS_FALSE)
	ENUM_VALUE(IS_NOT_FALSE)
	ENUM_VALUE(IS_UNKNOWN)
	ENUM_VALUE(IS_NOT_UNKNOWN)
END_ENUM(BoolTestType)
#endif /* NO_ENUM_BoolTestType */

#ifndef NO_ENUM_RelOptKind
BEGIN_ENUM(RelOptKind)
	ENUM_VALUE(RELOPT_BASEREL)
	ENUM_VALUE(RELOPT_JOINREL)
	ENUM_VALUE(RELOPT_OTHER_MEMBER_REL)
	ENUM_VALUE(RELOPT_DEADREL)
END_ENUM(RelOptKind)
#endif /* NO_ENUM_RelOptKind */

#ifndef NO_ENUM_UniquePathMethod
BEGIN_ENUM(UniquePathMethod)
	ENUM_VALUE(UNIQUE_PATH_NOOP)
	ENUM_VALUE(UNIQUE_PATH_HASH)
	ENUM_VALUE(UNIQUE_PATH_SORT)
END_ENUM(UniquePathMethod)
#endif /* NO_ENUM_UniquePathMethod */

#ifndef NO_ENUM_QuerySource
BEGIN_ENUM(QuerySource)
	ENUM_VALUE(QSRC_ORIGINAL)
	ENUM_VALUE(QSRC_PARSER)
	ENUM_VALUE(QSRC_INSTEAD_RULE)
	ENUM_VALUE(QSRC_QUAL_INSTEAD_RULE)
	ENUM_VALUE(QSRC_NON_INSTEAD_RULE)
END_ENUM(QuerySource)
#endif /* NO_ENUM_QuerySource */

#ifndef NO_ENUM_SortByDir
BEGIN_ENUM(SortByDir)
	ENUM_VALUE(SORTBY_DEFAULT)
	ENUM_VALUE(SORTBY_ASC)
	ENUM_VALUE(SORTBY_DESC)
	ENUM_VALUE(SORTBY_USING)
END_ENUM(SortByDir)
#endif /* NO_ENUM_SortByDir */

#ifndef NO_ENUM_SortByNulls
BEGIN_ENUM(SortByNulls)
	ENUM_VALUE(SORTBY_NULLS_DEFAULT)
	ENUM_VALUE(SORTBY_NULLS_FIRST)
	ENUM_VALUE(SORTBY_NULLS_LAST)
END_ENUM(SortByNulls)
#endif /* NO_ENUM_SortByNulls */

#ifndef NO_ENUM_CoercionContext
BEGIN_ENUM(CoercionContext)
	ENUM_VALUE(COERCION_IMPLICIT)
	ENUM_VALUE(COERCION_ASSIGNMENT)
	ENUM_VALUE(COERCION_EXPLICIT)
END_ENUM(CoercionContext)
#endif /* NO_ENUM_CoercionContext */

#ifdef PGXC
#ifndef NO_ENUM_DistributionType
BEGIN_ENUM(DistributionType)
	ENUM_VALUE(DISTTYPE_REPLICATION)
	ENUM_VALUE(DISTTYPE_HASH)
	ENUM_VALUE(DISTTYPE_ROUNDROBIN)
	ENUM_VALUE(DISTTYPE_MODULO)
#ifdef ADB
	ENUM_VALUE(DISTTYPE_USER_DEFINED)
#endif /* ADB */
END_ENUM(DistributionType)
#endif /* NO_ENUM_DistributionType */

#ifndef NO_ENUM_PGXCSubClusterType
BEGIN_ENUM(PGXCSubClusterType)
	ENUM_VALUE(SUBCLUSTER_NONE)
	ENUM_VALUE(SUBCLUSTER_NODE)
	ENUM_VALUE(SUBCLUSTER_GROUP)
END_ENUM(PGXCSubClusterType)
#endif /* NO_ENUM_PGXCSubClusterType */

#endif /* PGXC */

#ifdef ADB

#ifndef NO_ENUM_ParseGrammer
BEGIN_ENUM(ParseGrammar)
	ENUM_VALUE(PARSE_GRAM_POSTGRES)
	ENUM_VALUE(PARSE_GRAM_ORACLE)
END_ENUM(ParseGrammar)
#endif /* NO_ENUM_ParseGram */

#endif /* ADB */